.. _cmmGnSetServoOn: cmmGnSetServoOn ================ ---------------- SYNOPSYS ``````````` .. code-block:: none VT_I4 cmmGnSetServoOn ( [in] VT_I4 Axis, [in] VT_I4 Enable ) DESCRIPTION ````````````` - SERVO-ON 신호의 ON/OFF를 제어합니다. PARAMETER ``````````` - Axis: 축 번호(0 부터 시작합니다). - Enable : cmmGnSetServoOn 함수의 인자이며, SERVO-ON 신호의 출력 상태를 설정합니다. +----------------+----------------+ | Value | Meaning | +================+================+ | 0 또는 cmFALSE | SERVO-OFF | +----------------+----------------+ | 1 또는 cmTRUE | SERVO-ON | +----------------+----------------+ RETURN VALUE ````````````` +--------------+----------------+ | Value | Meaning | +==============+================+ | 음수 | 수행 실패 | +--------------+----------------+ | cmERR_NONE | 수행 성공 | +--------------+----------------+ REFERENCE ``````````` - 서보를 On 시켜야 하는 경우 cmmGnDeivceLoad() 함수 호출 이후에 cmmGnSetServoOn(Axis#, cmTRUE)를 호출해주셔야 서보 모터가 정상 동작 합니다. - cmmCfgSetMioProperty() 또는 cmmCfgSetMioProperty() 를 실행하여 서보온 신호의 출력로직을 설정할 수 있습니다. Example ````````` .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ #include “Cmmsdk.h” #include “CmmsdkDef.h” void OnSetServoOn () { long nAxisNo = 1; // Servo-On 신호를 제어할 축 선택. long nMioStates; // 모션 상태 정보 /* 해당 축의 Servo-On 상태를 확인한 후, 설정된 상태에 따라 ON/OFF 상태 제어 */ if ( cmmStReadMioStatuses ( nAxisNo, &nMioStates ) == cmERR_NONE ) { if ( (nMioStates >> cmIOST_SVON) & 0x1 == cmFALSE ) { // Servo OFF 상태이므로 Servo ON 상태로 설정합니다. cmmGnSetServoOn ( nAxisNo, cmTRUE ); } else { // Servo ON 상태이므로 Servo OFF 상태로 설정합니다. cmmGnSetServoOn ( nAxisNo, cmFALSE ); } } } ------------------------------------------------------------------------------------------------------- Visual Basic Private Sub OnSetServoOn() Dim nAxisNo As Long ' Servo-On 신호를 제어할 축 선택. Dim nMioStates As Long ' 모션 상태 정보 Dim nResult As Long nAxisNo = 1 ' 해당 축의 Servo-On 상태를 확인한 후, 설정된 상태에 따라 ON/OFF 상태 제어 If cmmStReadMioStatuses(nAxisNo, nMioStates) = cmERR_NONE Then Call cmmGnBitShift(nMioStates, cmIOST_SVON, nResult) If nResult = cmFALSE Then ' Servo OFF 상태이므로 Servo ON 상태로 설정합니다. Call cmmGnSetServoOn(nAxisNo, cmTRUE) Else ' Servo ON 상태이므로 Servo OFF 상태로 설정합니다. Call cmmGnSetServoOn(nAxisNo, cmFALSE) End If End If End Sub ------------------------------------------------------------------------------------------------------- Delphi procedure OnSetServoOn (); var nAxisNo : LongInt; // Servo-On 신호를 제어할 축 선택. nMioStates : LongInt; // 모션 상태 정보 begin nAxisNo := 1; // 해당 축의 Servo-On 상태를 확인한 후, 설정된 상태에 따라 ON/OFF 상태 제어 if cmmStReadMioStatuses ( nAxisNo, @nMioStates ) = cmERR_NONE then begin if ( ( nMioStates shr cmIOST_SVON ) and $1 ) = cmFALSE then begin // Servo OFF 상태이므로 Servo ON 상태로 설정합니다. cmmGnSetServoOn ( nAxisNo, cmTRUE ); end else // Servo ON 상태이므로 Servo OFF 상태로 설정합니다. cmmGnSetServoOn ( nAxisNo, cmFALSE ); end; end; end; .. seealso:: :ref:`cmmGnGetServoOn`